#include <iostream>
#include <vector>

std::vector<std::vector<int>> matrixReshape(std::vector<std::vector<int>>& mat, int r, int c) {
    int m = mat.size();
    int n = mat[0].size();
    if (m * n != r * c) {
        return mat; 
    }
    std::vector<std::vector<int>> reshaped(r, std::vector<int>(c, 0));
    for (int i = 0; i < m * n; i++) {
        reshaped[i / c][i % c] = mat[i / n][i % n];
    }
    return reshaped;
}

int main() {
    std::vector<std::vector<int>> mat = {{1, 2}, {3, 4}};
    int r = 1;
    int c = 4;
    std::vector<std::vector<int>> reshaped = matrixReshape(mat, r, c);
    std::cout << "The reshaped matrix is: " << std::endl;
    for (const auto& row : reshaped) {
        for (int num : row) {
            std::cout << num << " ";
        }
        std::cout << std::endl;
    }
    return 0;
}
